﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAL
{
    public class DALProductos : DALBase
    {
        private static string cmdProductosPorComercio = "Select * From Productos Where ComId = @ComId ";
        private static string cmdProductosPorId = "Select * From Productos Where ProId = @ProId ";
        private static string cmdAltaProducto = "Insert into Productos (ProNombre,CatId,ComId) Values(@ProNombre,@CatId,@ComId)";
        private static string cmdModificarProducto = "update Productos set ProNombre = @ProNombre, CatId= @CatId  where ProId = @ProId and ComId = @ComId";
        private static string cmdBajaProducto = "delete from Productos where ProId = @ProId";

        public static SqlDataReader BuscarProductos(int comercioId)
        {
            List<SqlParameter> lstparameters = new List<SqlParameter>();
            lstparameters.Add(new SqlParameter("@ComId", comercioId));
            SqlDataReader dr = select(lstparameters, cmdProductosPorComercio, CommandType.Text);
            return dr;
        }


        public static SqlDataReader BuscarProductoPorId(int productoId)
        {
            List<SqlParameter> lstparameters = new List<SqlParameter>();
            lstparameters.Add(new SqlParameter("@ProId", productoId));
            SqlDataReader dr = select(lstparameters, cmdProductosPorId, CommandType.Text);
            return dr;
        }

        public Boolean AltaProducto(List<SqlParameter> parametros)
        {
            int ret = ejecutaNonQuery(cmdAltaProducto, parametros, CommandType.Text);

            if (ret > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        public Boolean ModificarProducto(List<SqlParameter> parametros)
        {
            int ret = ejecutaNonQuery(cmdModificarProducto, parametros, CommandType.Text);

            if (ret > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        public Boolean BorrarProducto(List<SqlParameter> parametros)
        {
            int ret = ejecutaNonQuery(cmdBajaProducto, parametros, CommandType.Text);

            if (ret > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

    }
}
